def create_funcs(): funcs = [] for i in range(3): def f(): return i funcs.append(f) return funcs
for func in create_funcs(): print(func())
Варианты ответа: A)
1 2
B)
2 2
C)
0 0
D) Ошибка выполнения
---
✅ Правильный ответ: B
Почему: Это классическая late binding: функция f() не сохраняет значение i на момент создания, а берёт его из текущей области видимости при вызове. К моменту вызова i == 2 (последнее значение в range(3)), поэтому все три функции возвращают 2.
Чтобы избежать этого — можно использовать аргументы по умолчанию: def f(i=i): return i
def create_funcs(): funcs = [] for i in range(3): def f(): return i funcs.append(f) return funcs
for func in create_funcs(): print(func())
Варианты ответа: A)
1 2
B)
2 2
C)
0 0
D) Ошибка выполнения
---
✅ Правильный ответ: B
Почему: Это классическая late binding: функция f() не сохраняет значение i на момент создания, а берёт его из текущей области видимости при вызове. К моменту вызова i == 2 (последнее значение в range(3)), поэтому все три функции возвращают 2.
Чтобы избежать этого — можно использовать аргументы по умолчанию: def f(i=i): return i
BY Python RU
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Cryptoassets enthusiasts use this application for their trade activities, and they may make donations for this cause.If somehow Telegram do run out of money to sustain themselves they will probably introduce some features that will not hinder the rudimentary principle of Telegram but provide users with enhanced and enriched experience. This could be similar to features where characters can be customized in a game which directly do not affect the in-game strategies but add to the experience.
If riding a bucking bronco is your idea of fun, you’re going to love what the stock market has in store. Consider this past week’s ride a preview.The week’s action didn’t look like much, if you didn’t know better. The Dow Jones Industrial Average rose 213.12 points or 0.6%, while the S&P 500 advanced 0.5%, and the Nasdaq Composite ended little changed.